gint *natural_width)
{
GtkPopover *popover = GTK_POPOVER (widget);
- GtkPopoverPrivate *priv = popover->priv;
GtkWidget *child;
+ GdkRectangle child_rect;
gint min, nat, extra, minimal_size;
gint child_height;
GtkBorder border, margin;
child = gtk_bin_get_child (GTK_BIN (widget));
min = nat = 0;
- child_height = height;
+ gtk_popover_get_rect_for_size (popover, 0, height, &child_rect);
+ child_height = child_rect.height;
- if (POS_IS_VERTICAL (priv->preferred_position))
- child_height -= TAIL_HEIGHT;
get_padding_and_border (widget, &border);
get_margin (widget, &margin);
gint *natural_height)
{
GtkPopover *popover = GTK_POPOVER (widget);
- GtkPopoverPrivate *priv = popover->priv;
GtkWidget *child;
+ GdkRectangle child_rect;
gint min, nat, extra, minimal_size;
gint child_width;
GtkBorder border, margin;
child = gtk_bin_get_child (GTK_BIN (widget));
min = nat = 0;
- child_width = width;
-
- if (!POS_IS_VERTICAL (priv->preferred_position))
- child_width -= TAIL_HEIGHT;
-
get_padding_and_border (widget, &border);
get_margin (widget, &margin);
+
+ gtk_popover_get_rect_for_size (popover, width, 0, &child_rect);
+ child_width = child_rect.width;
+
child_width -= border.left + border.right;
minimal_size = get_minimal_size (popover, GTK_ORIENTATION_VERTICAL);
if (child)